package com.edu.exam.enums.curriculum.questionbank;

/**
 * 题库访问级别枚举
 *
 * 从QuestionBank.AccessLevel迁移而来
 * 定义题库的访问级别，用于控制不同用户对题库的访问权限
 *
 * @author System
 * @version 1.0.0
 */
public enum QuestionBankAccessLevel {

    /**
     * 公开访问 - 所有人都可以访问
     */
    PUBLIC("公开访问"),

    /**
     * 内部访问 - 仅限内部人员访问
     */
    INTERNAL("内部访问"),

    /**
     * 受限访问 - 需要特定权限才能访问
     */
    RESTRICTED("受限访问"),

    /**
     * 私有访问 - 仅限特定用户或组织访问
     */
    PRIVATE("私有访问"),

    /**
     * 只读访问 - 只能查看，不能修改
     */
    READ_ONLY("只读访问"),

    /**
     * 编辑访问 - 可以查看和编辑
     */
    EDIT("编辑访问"),

    /**
     * 管理员访问 - 具有完全管理权限
     */
    ADMIN("管理员访问"),

    /**
     * 超级管理员访问 - 具有系统最高权限
     */
    SUPER_ADMIN("超级管理员访问"),

    /**
     * 审核员访问 - 具有审核权限
     */
    REVIEWER("审核员访问"),

    /**
     * 贡献者访问 - 可以贡献内容但不能管理
     */
    CONTRIBUTOR("贡献者访问"),

    /**
     * 维护者访问 - 具有维护权限
     */
    MAINTAINER("维护者访问"),

    /**
     * 所有者访问 - 题库所有者，具有完全控制权
     */
    OWNER("所有者访问"),

    /**
     * 临时访问 - 临时授予的访问权限
     */
    TEMPORARY("临时访问"),

    /**
     * 试用访问 - 试用期间的访问权限
     */
    TRIAL("试用访问"),

    /**
     * 过期访问 - 访问权限已过期
     */
    EXPIRED("过期访问"),

    /**
     * 撤销访问 - 访问权限已被撤销
     */
    REVOKED("撤销访问"),

    /**
     * 挂起访问 - 访问权限暂时挂起
     */
    SUSPENDED("挂起访问"),

    /**
     * 禁用访问 - 访问权限被禁用
     */
    DISABLED("禁用访问");

    private final String description;

    QuestionBankAccessLevel(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }
}